package com.orzxlee.FunctionInterface08;

import java.util.function.Function;
import java.util.function.Predicate;

/**
 * 第四节 函数接口
 *
 * 常用函数式接口
 *
 *     Function接口 通常用于对参数进行处理
 *
 *  练习
 *      String s = "林青霞,30";
 *          1.截取数字30,转为int类型
 *          2.将上一步截取的int类型数据加70,得到int类型结果,输出
 *
 *
 */
public class Demo {
    public static void main(String[] args) {
        //体验
        //字符串转为int
        //convert("100",s -> Integer.parseInt(s));
        //convert("100",Integer::parseInt);

        // int类型数据加上一个整数 转为字符串输出
        //convert(100,s -> String.valueOf(s+500));

        //  字符串转为int , int类型数据加上一个整数 转为字符串输出
        //convert("100",s -> Integer.parseInt(s),i -> String.valueOf(i+500));

        //练习
        String s = "林青霞,30";
         convert2(s,s1 -> Integer.parseInt(s1.split(",")[1]),i -> i+70);

    }

    //练习
    private static void convert2(String s , Function<String,Integer> fun,Function<Integer,Integer> fun2){
        System.out.println(fun.andThen(fun2).apply(s));
    }


    //字符串转为int
    private static void convert(String s , Function<String,Integer> fun){
        System.out.println(fun.apply(s));
    }

    // int类型数据加上一个整数 转为字符串输出
    private static void convert(int i , Function<Integer,String> fun){
        System.out.println(fun.apply(i));
    }

    //  字符串转为int , int类型数据加上一个整数 转为字符串输出
    private static void convert(String s , Function<String,Integer> fun,Function<Integer,String> fun2){
        System.out.println(fun.andThen(fun2).apply(s));
    }

}


















